package com.gitee.huanminacb.lambda.sql;

import com.gitee.huanminabc.jlambda_sql.IdType;
import com.gitee.huanminabc.jlambda_sql.annotation.TableField;
import com.gitee.huanminabc.jlambda_sql.annotation.TableId;
import com.gitee.huanminabc.jlambda_sql.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 积分批次明细表
 * </p>
 *
 * @author shiyang.hao@serviceshare.com
 * @since 2024-05-15
 */
@Data
@Accessors(chain = true)
@TableName(value = "points_batch_detail")
public class PointsBatchDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 批次号
     */
    private Long batchNo;

    /**
     * 批次名称
     */
    private String batchName;

    /**
     * 积分订单号
     */
    @TableField("points_order_no")
    private Long pointsNo;

    /**
     * 客户用户id
     */
    private String enterpriseUserId;

    /**
     * 客户用户名称
     */
    private String enterpriseUserName;

    /**
     * 活动ID
     */
    private Long activityId;

    /**
     * 活动名称
     */
    private String activityName;


    /**
     * 手机号
     */
    private String mobile;

    /**
     * 积分
     */
    @TableField("point_amt")
    private Long points;

    /**
     * 商品订单号
     */
    private String goodsNo;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品价格(单位:分)
     */
    private Long goodsAmount;

    /**
     * 客户id
     */
    private Long enterpriseId;

    /**
     * 客户名称
     */
    private String enterpriseName;

    /**
     * 服务商id
     */
    private Long serviceId;

    /**
     * 服务商名称
     */
    private String serviceName;


    /**
     * 失败原因
     */
    private String failReason;

    /**
     * 批次状态AuditStatusEnum：UN_AUDIT("待审核"),SUCCESS("审核通过"),CANCELED("已撤销")
     */
    private String batchStatus;


    /**
     * 积分状态 RedeemStatusEnum
     * NOT_LOTTERY("未抽奖"),NOT_REDEEM("未兑换"),REDEEM_ING("兑换中"),REDEEM_SUCCESS("兑换成功"),REDEEM_FAIL("兑换失败")
     */
    private String status;
    /**
     * 创建时间
     */
    @TableField
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField
    private Date updateTime;

    /**
     * 抽奖时间
     */
    private Date winningTime;

    /**
     * 兑换时间(触发兑换按钮的时间)
     */
    private Date redeemTime;

    /**
     * 未兑换积分
     */
    @TableField
    private Long notRedeemSum;

    /**
     * 未抽奖积分
     */
    @TableField
    private Long notLotterySum;

    /**
     * 兑换中积分
     */

    @TableField
    private Long redeemIngSum;

    /**
     * 兑换成功积分
     */

    @TableField
    private Long redeemSuccessSum;

    /**
     * 累积积分
     */
    @TableField
    private Long totalPoints;

    /**
     * 备注
     */
    private String remark;


}
